package com.ruoyi.parkinglot.domain;

import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 停车场表 - 用于管理停车场基础信息及实时状态
 * @TableName park_lot
 */
@Data
@TableName("park_lot")
public class ParkLot implements Serializable {
    /**
     * 停车场ID
     */
    @TableId(value = "lot_id", type = IdType.AUTO)
    private Long lotId;

    /**
     * 停车场名称
     */
    @TableField("lot_name")
    private String lotName;

    /**
     * 停车场编码，用于唯一标识
     */
    private String lotCode;

    /**
     * 停车场类型（1路边 2场库）
     */
    private String lotType;

    /**
     * 所属区域ID，关联park_area表
     */
    private Long areaId;

    /**
     * 所属道路ID，关联park_road表，路边停车必填
     */
    private Long roadId;

    /**
     * 总泊位数
     */
    private Integer totalSpots;

    /**
     * 已用泊位数，实时更新
     */
    private Integer usedSpots;

    /**
     * 空闲泊位数，实时更新
     */
    private Integer freeSpots;

    /**
     * 详细地址
     */
    private String address;

    /**
     * 经度，用于地图定位
     */
    private BigDecimal longitude;

    /**
     * 纬度，用于地图定位
     */
    private BigDecimal latitude;

    /**
     * 状态（0正常 1停用）
     */
    private String status;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic(value = "0", delval = "2")
    private String delFlag;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    private static final long serialVersionUID = 1L;
}
